//
// Copyright (c) 2024 BPer
//
#ifndef SRC_BPERRTP_BPERRTCPCOMPOUND_H_
#define SRC_BPERRTP_BPERRTCPCOMPOUND_H_

#include <bperrtp/BPerRtcpCommon.h>
#include <bperutil/sys/BPerVector.h>

bPer_vector_declare(BPerRtcpCommon)

typedef struct BPerRtcpCompound{
	 int32_t nb_bytes;
	 int32_t nb_data;
	 char* data;
	 BPerRtcpCommonVector rtcpVector;
}BPerRtcpCompound;

#ifdef __cplusplus
extern "C"{
#endif
void bPer_create_rtcpCompound(BPerRtcpCompound* rtcp);
void bPer_destroy_rtcpCompound(BPerRtcpCompound* rtcp);
int32_t bPer_decode_rtcpCompound(BPerRtcpCompound* rtcp,BPerBuffer *buffer);
int32_t bPer_encode_rtcpCompound(BPerRtcpCompound* rtcp,BPerBuffer *buffer);
uint64_t bPer_rtcpCompound_nb_bytes();
int32_t bPer_rtcpCompound_add_rtcp(BPerRtcpCompound *rtcps, BPerRtcpCommon *rtcp);
void bPer_rtcpCompound_clear(BPerRtcpCompound *rtcps);
#ifdef __cplusplus
}
#endif
#endif /* SRC_BPERRTP_BPERRTCPCOMPOUND_H_ */
